using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Excel = Microsoft.Office.Interop.Excel;

/// <summary>
/// Summary description for Excel
/// </summary>
public class Reader
{

    public Excel.ApplicationClass app;
    public Excel.Workbook werkboek;
    public Excel.Worksheet werkblad;
    public Excel.Range bereik;

    public Reader(string locatie)
	{
       
        object missing = Type.Missing;
        app = new Excel.ApplicationClass();
        werkboek = app.Workbooks.Open
            (
            locatie,
            missing, true, missing, missing, missing,
            missing, missing, missing, false, missing,
            missing, missing, missing, missing
            );
        werkblad = (Excel.Worksheet)werkboek.ActiveSheet;

	}

    public Excel.Worksheet GetWerkblad
    {
        get { return this.werkblad; }
    }

    public int FindLaatsteRegel(string welke)
    {

        string test = "";
        int lengte = 1;
        int teller = 1;
        int controle = 0;
        int lengteNext = 1;
        int lengteNextColumn = 1;
        if (welke.Equals("VERTICAAL"))
        {
            do
            {
                
                try
                {
                    /*Elke agenda export heeft voor elke regel een begin datum onderwerp en locatie kunnen leeg zijn 
                    Indien er een lege regel voor begindatum is gevonden wijst dit op het einde van de excel file*/
                    test = ((Excel.Range)werkblad.Cells[teller, 6]).Value2.ToString();
                    lengte = test.Length;
                }
                catch
                {
                    lengte = 0;
                }
                teller++;
            } while (lengte != 0);
            teller--;
        }
        else
        {
            do
            {
                try
                {
                    /*Elke agenda export heeft voor elke regel een begin datum onderwerp en locatie kunnen leeg zijn 
                    Indien er een lege regel voor begindatum is gevonden wijst dit op het einde van de excel file*/
                    test = ((Excel.Range)werkblad.Cells[1, teller]).Value2.ToString();

                    if (!test.Equals("") && welke.Equals("HORIZONTAAL"))
                    {
                        if (test.Equals("Onderwerp"))
                        {
                            controle++;
                        }
                        else if (test.Equals("Begindatum"))
                        {
                            controle++;
                        }
                        else if (test.Equals("Begintijd"))
                        {
                            controle++;
                        }
                        else if (test.Equals("Einddatum"))
                        {
                            controle++;
                        }
                        else if (test.Equals("Eindtijd"))
                        {
                            controle++;
                        }
                        else if (test.Equals("Gebeurtenisduurtheledag"))
                        {
                            controle++;
                        }
                    }
                    lengte = test.Length;
                }
                catch
                {
                    lengte = 0;
                }
                teller++;
            } while (lengte != 0 && teller <= 6);
        }
        if (teller == 0)
        {
            teller = -1;
        }
        if (controle != 6 && welke.Equals("HORIZONTAAL"))
        {
            teller = -1;
        }
        return teller = teller - 1;
    }

    public Excel.Range FillBereik(int x, int y)
    {
        bereik = ((Excel.Range)werkblad.Cells[x, y]);
        return bereik;
    }

    public void Sluiten()
    {
        app.Quit();
    }
}
